
#include <cmath>
#include "IClassReal.h"
#include "member_BClass.h"

using namespace BWE;

ClassReal::ClassReal() : BClass("real", true)
{

	insertMethod("real()", &ClassReal::create);
	insertMethod("real(bool)", &ClassReal::create_bool);
	insertMethod("real(byte)", &ClassReal::create_byte);
	insertMethod("real(char)", &ClassReal::create_char);
	insertMethod("real(short)", &ClassReal::create_short);
	insertMethod("real(int)", &ClassReal::create_int);
	insertMethod("real(long)", &ClassReal::create_long);
	insertMethod("real(real)", &ClassReal::create_real);
	insertMethod("real(float)", &ClassReal::create_float);
	insertMethod("real(double)", &ClassReal::create_double);

	insertMethod("real =(bool)", &ClassReal::assign_bool);
	insertMethod("real =(byte)", &ClassReal::assign_byte);
	insertMethod("real =(char)", &ClassReal::assign_char);
	insertMethod("real =(short)", &ClassReal::assign_short);
	insertMethod("real =(int)", &ClassReal::assign_int);
	insertMethod("real =(long)", &ClassReal::assign_long);
	insertMethod("real =(real)", &ClassReal::assign_real);
	insertMethod("real =(float)", &ClassReal::assign_float);
	insertMethod("real =(double)", &ClassReal::assign_double);

	insertMethod("real +()", &ClassReal::positive);
	insertMethod("real -()", &ClassReal::negative);
	insertMethod("real ++()", &ClassReal::plus_plus);
	insertMethod("real --()", &ClassReal::minus_minus);

	insertMethod("real +(byte)", &ClassReal::plus_byte);
	insertMethod("real +(char)", &ClassReal::plus_char);
	insertMethod("real +(short)", &ClassReal::plus_short);
	insertMethod("real +(int)", &ClassReal::plus_int);
	insertMethod("real +(long)", &ClassReal::plus_long);
	insertMethod("real +(real)", &ClassReal::plus_real);
	insertMethod("real +(float)", &ClassReal::plus_float);
	insertMethod("real +(double)", &ClassReal::plus_double);

	insertMethod("+=(byte)", &ClassReal::plus_assign_byte);
	insertMethod("+=(char)", &ClassReal::plus_assign_char);
	insertMethod("+=(short)", &ClassReal::plus_assign_short);
	insertMethod("+=(int)", &ClassReal::plus_assign_int);
	insertMethod("+=(long)", &ClassReal::plus_assign_long);
	insertMethod("+=(real)", &ClassReal::plus_assign_real);
	insertMethod("+=(float)", &ClassReal::plus_assign_float);
	insertMethod("+=(double)", &ClassReal::plus_assign_double);

	insertMethod("real -(byte)", &ClassReal::minus_byte);
	insertMethod("real -(char)", &ClassReal::minus_char);
	insertMethod("real -(short)", &ClassReal::minus_short);
	insertMethod("real -(int)", &ClassReal::minus_int);
	insertMethod("real -(long)", &ClassReal::minus_long);
	insertMethod("real -(real)", &ClassReal::minus_real);
	insertMethod("real -(float)", &ClassReal::minus_float);
	insertMethod("real -(double)", &ClassReal::minus_double);

	insertMethod("-=(byte)", &ClassReal::minus_assign_byte);
	insertMethod("-=(char)", &ClassReal::minus_assign_char);
	insertMethod("-=(short)", &ClassReal::minus_assign_short);
	insertMethod("-=(int)", &ClassReal::minus_assign_int);
	insertMethod("-=(long)", &ClassReal::minus_assign_long);
	insertMethod("-=(real)", &ClassReal::minus_assign_real);
	insertMethod("-=(float)", &ClassReal::minus_assign_float);
	insertMethod("-=(double)", &ClassReal::minus_assign_double);

	insertMethod("real *(byte)", &ClassReal::mult_byte);
	insertMethod("real *(char)", &ClassReal::mult_char);
	insertMethod("real *(short)", &ClassReal::mult_short);
	insertMethod("real *(int)", &ClassReal::mult_int);
	insertMethod("real *(long)", &ClassReal::mult_long);
	insertMethod("real *(real)", &ClassReal::mult_real);
	insertMethod("real *(float)", &ClassReal::mult_float);
	insertMethod("real *(double)", &ClassReal::mult_double);

	insertMethod("*=(byte)", &ClassReal::mult_assign_byte);
	insertMethod("*=(char)", &ClassReal::mult_assign_char);
	insertMethod("*=(short)", &ClassReal::mult_assign_short);
	insertMethod("*=(int)", &ClassReal::mult_assign_int);
	insertMethod("*=(long)", &ClassReal::mult_assign_long);
	insertMethod("*=(real)", &ClassReal::mult_assign_real);
	insertMethod("*=(float)", &ClassReal::mult_assign_float);
	insertMethod("*=(double)", &ClassReal::mult_assign_double);

	insertMethod("real /(byte)", &ClassReal::div_byte);
	insertMethod("real /(char)", &ClassReal::div_char);
	insertMethod("real /(short)", &ClassReal::div_short);
	insertMethod("real /(int)", &ClassReal::div_int);
	insertMethod("real /(long)", &ClassReal::div_long);
	insertMethod("real /(real)", &ClassReal::div_real);
	insertMethod("real /(float)", &ClassReal::div_float);
	insertMethod("real /(double)", &ClassReal::div_double);

	insertMethod("/=(byte)", &ClassReal::div_assign_byte);
	insertMethod("/=(char)", &ClassReal::div_assign_char);
	insertMethod("/=(short)", &ClassReal::div_assign_short);
	insertMethod("/=(int)", &ClassReal::div_assign_int);
	insertMethod("/=(long)", &ClassReal::div_assign_long);
	insertMethod("/=(real)", &ClassReal::div_assign_real);
	insertMethod("/=(float)", &ClassReal::div_assign_float);
	insertMethod("/=(double)", &ClassReal::div_assign_double);

	insertMethod("real %(byte)", &ClassReal::mod_byte);
	insertMethod("real %(char)", &ClassReal::mod_char);
	insertMethod("real %(short)", &ClassReal::mod_short);
	insertMethod("real %(int)", &ClassReal::mod_int);
	insertMethod("real %(long)", &ClassReal::mod_long);
	insertMethod("real %(real)", &ClassReal::mod_real);
	insertMethod("real %(float)", &ClassReal::mod_float);
	insertMethod("real %(double)", &ClassReal::mod_double);

	insertMethod("%=(byte)", &ClassReal::mod_assign_byte);
	insertMethod("%=(char)", &ClassReal::mod_assign_char);
	insertMethod("%=(short)", &ClassReal::mod_assign_short);
	insertMethod("%=(int)", &ClassReal::mod_assign_int);
	insertMethod("%=(long)", &ClassReal::mod_assign_long);
	insertMethod("%=(real)", &ClassReal::mod_assign_real);
	insertMethod("%=(float)", &ClassReal::mod_assign_float);
	insertMethod("%=(double)", &ClassReal::mod_assign_double);

	insertMethod("bool ==(bool)", &ClassReal::equal_bool);
	insertMethod("bool ==(byte)", &ClassReal::equal_byte);
	insertMethod("bool ==(char)", &ClassReal::equal_char);
	insertMethod("bool ==(short)", &ClassReal::equal_short);
	insertMethod("bool ==(int)", &ClassReal::equal_int);
	insertMethod("bool ==(long)", &ClassReal::equal_long);
	insertMethod("bool ==(real)", &ClassReal::equal_real);
	insertMethod("bool ==(float)", &ClassReal::equal_float);
	insertMethod("bool ==(double)", &ClassReal::equal_double);

	insertMethod("bool !=(bool)", &ClassReal::unequal_bool);
	insertMethod("bool !=(byte)", &ClassReal::unequal_byte);
	insertMethod("bool !=(char)", &ClassReal::unequal_char);
	insertMethod("bool !=(short)", &ClassReal::unequal_short);
	insertMethod("bool !=(int)", &ClassReal::unequal_int);
	insertMethod("bool !=(long)", &ClassReal::unequal_long);
	insertMethod("bool !=(real)", &ClassReal::unequal_real);
	insertMethod("bool !=(float)", &ClassReal::unequal_float);
	insertMethod("bool !=(double)", &ClassReal::unequal_double);

	insertMethod("bool >(byte)", &ClassReal::greater_byte);
	insertMethod("bool >(char)", &ClassReal::greater_char);
	insertMethod("bool >(short)", &ClassReal::greater_short);
	insertMethod("bool >(int)", &ClassReal::greater_int);
	insertMethod("bool >(long)", &ClassReal::greater_long);
	insertMethod("bool >(real)", &ClassReal::greater_real);
	insertMethod("bool >(float)", &ClassReal::greater_float);
	insertMethod("bool >(double)", &ClassReal::greater_double);

	insertMethod("bool >=(byte)", &ClassReal::greater_equal_byte);
	insertMethod("bool >=(char)", &ClassReal::greater_equal_char);
	insertMethod("bool >=(short)", &ClassReal::greater_equal_short);
	insertMethod("bool >=(int)", &ClassReal::greater_equal_int);
	insertMethod("bool >=(long)", &ClassReal::greater_equal_long);
	insertMethod("bool >=(real)", &ClassReal::greater_equal_real);
	insertMethod("bool >=(float)", &ClassReal::greater_equal_float);
	insertMethod("bool >=(double)", &ClassReal::greater_equal_double);

	insertMethod("bool <(byte)", &ClassReal::less_byte);
	insertMethod("bool <(char)", &ClassReal::less_char);
	insertMethod("bool <(short)", &ClassReal::less_short);
	insertMethod("bool <(int)", &ClassReal::less_int);
	insertMethod("bool <(long)", &ClassReal::less_long);
	insertMethod("bool <(real)", &ClassReal::less_real);
	insertMethod("bool <(float)", &ClassReal::less_float);
	insertMethod("bool <(double)", &ClassReal::less_double);

	insertMethod("bool <=(byte)", &ClassReal::less_equal_byte);
	insertMethod("bool <=(char)", &ClassReal::less_equal_char);
	insertMethod("bool <=(short)", &ClassReal::less_equal_short);
	insertMethod("bool <=(int)", &ClassReal::less_equal_int);
	insertMethod("bool <=(long)", &ClassReal::less_equal_long);
	insertMethod("bool <=(real)", &ClassReal::less_equal_real);
	insertMethod("bool <=(float)", &ClassReal::less_equal_float);
	insertMethod("bool <=(double)", &ClassReal::less_equal_double);

}

void ClassReal::create(int argc, BValue* argv)
{
	argv[0].refer() = BReal(0);
}
void ClassReal::create_bool(int argc, BValue* argv)
{
	bool b = argv[1];
	argv[0].refer() = b ? BReal(1) : BReal(0);
}
void ClassReal::create_byte(int argc, BValue* argv)
{
	BByte b = argv[1];
	argv[0].refer() = (BReal)b;
}
void ClassReal::create_char(int argc, BValue* argv)
{
	char c = argv[1];
	argv[0].refer() = (BReal)c;
}
void ClassReal::create_short(int argc, BValue* argv)
{
	short s = argv[1];
	argv[0].refer() = (BReal)s;
}
void ClassReal::create_int(int argc, BValue* argv)
{
	int i = argv[1];
	argv[0].refer() = (BReal)i;
}
void ClassReal::create_long(int argc, BValue* argv)
{
	long long l = argv[1];
	argv[0].refer() = (BReal)l;
}
void ClassReal::create_real(int argc, BValue* argv)
{
	BReal r = argv[1];
	argv[0].refer() = (BReal)r;
}
void ClassReal::create_float(int argc, BValue* argv)
{
	float f = argv[1];
	argv[0].refer() = (BReal)f;
}
void ClassReal::create_double(int argc, BValue* argv)
{
	double d = argv[1];
	argv[0].refer() = (BReal)d;
}
void ClassReal::release(int argc, BValue* argv)
{
	argv[0].refer().clear();
}

void ClassReal::assign_bool(int argc, BValue* argv)
{
	BReal& v = argv[0];
	bool b = argv[1];
	v = b ? BReal(1) : BReal(0);
}
void ClassReal::assign_byte(int argc, BValue* argv)
{
	BReal& v = argv[0];
	BByte b = argv[1];
	v = (BReal)b;
}
void ClassReal::assign_char(int argc, BValue* argv)
{
	BReal& v = argv[0];
	char c = argv[1];
	v = (BReal)c;
}
void ClassReal::assign_short(int argc, BValue* argv)
{
	BReal& v = argv[0];
	short s = argv[1];
	v = (BReal)s;
}
void ClassReal::assign_int(int argc, BValue* argv)
{
	BReal& v = argv[0];
	int i = argv[1];
	v = (BReal)i;
}
void ClassReal::assign_long(int argc, BValue* argv)
{
	BReal& v = argv[0];
	long long l = argv[1];
	v = (BReal)l;
}
void ClassReal::assign_real(int argc, BValue* argv)
{
	BReal& v = argv[0];
	BReal r = argv[1];
	v = (BReal)r;
}
void ClassReal::assign_float(int argc, BValue* argv)
{
	BReal& v = argv[0];
	float f = argv[1];
	v = (BReal)f;
}
void ClassReal::assign_double(int argc, BValue* argv)
{
	BReal& v = argv[0];
	double d = argv[1];
	v = (BReal)d;
}

void ClassReal::positive(int argc, BValue* argv)
{

}
void ClassReal::negative(int argc, BValue* argv)
{
	BReal& v = argv[0];
	argv[0] = -v;
}
void ClassReal::plus_plus(int argc, BValue* argv)
{
	BReal& v = argv[0];
	argv[0] = v++;
}
void ClassReal::minus_minus(int argc, BValue* argv)
{
	BReal& v = argv[0];
	argv[0] = v--;
}

void ClassReal::plus_byte(int argc, BValue* argv)
{
	BReal r = argv[0];
	BByte b = argv[1];
	argv[0] = (BReal)(r + b);
}
void ClassReal::plus_char(int argc, BValue* argv)
{
	BReal r = argv[0];
	char c = argv[1];
	argv[0] = (BReal)(r + c);
}
void ClassReal::plus_short(int argc, BValue* argv)
{
	BReal r = argv[0];
	short s = argv[1];
	argv[0] = (BReal)(r + s);
}
void ClassReal::plus_int(int argc, BValue* argv)
{
	BReal r = argv[0];
	int i = argv[1];
	argv[0] = (BReal)(r + i);
}
void ClassReal::plus_long(int argc, BValue* argv)
{
	BReal v = argv[0];
	long long l = argv[1];
	argv[0] = (BReal)(v + l);
}
void ClassReal::plus_real(int argc, BValue* argv)
{
	BReal v = argv[0];
	BReal r = argv[1];
	argv[0] = (BReal)(v + r);
}
void ClassReal::plus_float(int argc, BValue* argv)
{
	BReal v = argv[0];
	float f = argv[1];
	argv[0] = (BReal)(v + f);
}
void ClassReal::plus_double(int argc, BValue* argv)
{
	BReal v = argv[0];
	double d = argv[1];
	argv[0] = (BReal)(v + d);
}

void ClassReal::plus_assign_byte(int argc, BValue* argv)
{
	BReal& v = argv[0];
	BByte b = argv[1];
	v += b;
}
void ClassReal::plus_assign_char(int argc, BValue* argv)
{
	BReal& v = argv[0];
	char c = argv[1];
	v += c;
}
void ClassReal::plus_assign_short(int argc, BValue* argv)
{
	BReal& v = argv[0];
	short s = argv[1];
	v += s;
}
void ClassReal::plus_assign_int(int argc, BValue* argv)
{
	BReal& v = argv[0];
	int i = argv[1];
	v += i;
}
void ClassReal::plus_assign_long(int argc, BValue* argv)
{
	BReal& v = argv[0];
	long long l = argv[1];
	v += l;
}
void ClassReal::plus_assign_real(int argc, BValue* argv)
{
	BReal& v = argv[0];
	BReal r = argv[1];
	v += r;
}
void ClassReal::plus_assign_float(int argc, BValue* argv)
{
	BReal& v = argv[0];
	float f = argv[1];
	v += f;
}
void ClassReal::plus_assign_double(int argc, BValue* argv)
{
	BReal& v = argv[0];
	double d = argv[1];
	v += (BReal)d;
}

void ClassReal::minus_byte(int argc, BValue* argv)
{
	BReal v = argv[0];
	char c = argv[1];
	argv[0] = BReal(v - c);
}
void ClassReal::minus_char(int argc, BValue* argv)
{
	BReal v = argv[0];
	char c = argv[1];
	argv[0] = BReal(v - c);
}
void ClassReal::minus_short(int argc, BValue* argv)
{
	BReal v = argv[0];
	short s = argv[1];
	argv[0] = BReal(v - s);
}
void ClassReal::minus_int(int argc, BValue* argv)
{
	BReal v = argv[0];
	int i = argv[1];
	argv[0] = BReal(v - i);
}
void ClassReal::minus_long(int argc, BValue* argv)
{
	BReal v = argv[0];
	long long l = argv[1];
	argv[0] = BReal(v - l);
}
void ClassReal::minus_real(int argc, BValue* argv)
{
	BReal v = argv[0];
	BReal r = argv[1];
	argv[0] = BReal(v - r);
}
void ClassReal::minus_float(int argc, BValue* argv)
{
	BReal v = argv[0];
	float f = argv[1];
	argv[0] = BReal(v - f);
}
void ClassReal::minus_double(int argc, BValue* argv)
{
	BReal v = argv[0];
	double d = argv[1];
	argv[0] = BReal(v - d);
}

void ClassReal::minus_assign_byte(int argc, BValue* argv)
{
	BReal& v = argv[0];
	BByte b = argv[1];
	v -= b;
}
void ClassReal::minus_assign_char(int argc, BValue* argv)
{
	BReal& v = argv[0];
	char c = argv[1];
	v -= c;
}
void ClassReal::minus_assign_short(int argc, BValue* argv)
{
	BReal& v = argv[0];
	short s = argv[1];
	v -= s;
}
void ClassReal::minus_assign_int(int argc, BValue* argv)
{
	BReal& v = argv[0];
	int i = argv[1];
	v -= i;
}
void ClassReal::minus_assign_long(int argc, BValue* argv)
{
	BReal& v = argv[0];
	long long l = argv[1];
	v -= l;
}
void ClassReal::minus_assign_real(int argc, BValue* argv)
{
	BReal& v = argv[0];
	BReal r = argv[1];
	v -= r;
}
void ClassReal::minus_assign_float(int argc, BValue* argv)
{
	BReal& v = argv[0];
	float f = argv[1];
	v -= f;
}
void ClassReal::minus_assign_double(int argc, BValue* argv)
{
	BReal& v = argv[0];
	double d = argv[1];
	v -= (BReal)d;
}

void ClassReal::mult_byte(int argc, BValue* argv)
{
	BReal r = argv[0];
	BByte b = argv[1];
	argv[0] = BReal(r * b);
}
void ClassReal::mult_char(int argc, BValue* argv)
{
	BReal r = argv[0];
	char c = argv[1];
	argv[0] = BReal(r * c);
}
void ClassReal::mult_short(int argc, BValue* argv)
{
	BReal r = argv[0];
	short s = argv[1];
	argv[0] = BReal(r * s);
}
void ClassReal::mult_int(int argc, BValue* argv)
{
	BReal r = argv[0];
	int i = argv[1];
	argv[0] = BReal(r * i);
}
void ClassReal::mult_long(int argc, BValue* argv)
{
	BReal v = argv[0];
	long long l = argv[1];
	argv[0] = BReal(v * l);
}
void ClassReal::mult_real(int argc, BValue* argv)
{
	BReal v = argv[0];
	BReal r = argv[1];
	argv[0] = BReal(v * r);
}
void ClassReal::mult_float(int argc, BValue* argv)
{
	BReal v = argv[0];
	float f = argv[1];
	argv[0] = BReal(v * f);
}
void ClassReal::mult_double(int argc, BValue* argv)
{
	BReal v = argv[0];
	double d = argv[1];
	argv[0] = BReal(v * d);
}

void ClassReal::mult_assign_byte(int argc, BValue* argv)
{
	BReal& v = argv[0];
	BByte b = argv[1];
	v *= b;
}
void ClassReal::mult_assign_char(int argc, BValue* argv)
{
	BReal& v = argv[0];
	char c = argv[1];
	v *= c;
}
void ClassReal::mult_assign_short(int argc, BValue* argv)
{
	BReal& v = argv[0];
	short s = argv[1];
	v *= s;
}
void ClassReal::mult_assign_int(int argc, BValue* argv)
{
	BReal& v = argv[0];
	int i = argv[1];
	v *= i;
}
void ClassReal::mult_assign_long(int argc, BValue* argv)
{
	BReal& v = argv[0];
	long long l = argv[1];
	v *= l;
}
void ClassReal::mult_assign_real(int argc, BValue* argv)
{
	BReal& v = argv[0];
	BReal r = argv[1];
	v *= r;
}
void ClassReal::mult_assign_float(int argc, BValue* argv)
{
	BReal& v = argv[0];
	float f = argv[1];
	v *= f;
}
void ClassReal::mult_assign_double(int argc, BValue* argv)
{
	BReal& v = argv[0];
	double d = argv[1];
	v *= (BReal)d;
}

void ClassReal::div_byte(int argc, BValue* argv)
{
	BReal v = argv[0];
	BByte b = argv[1];
	argv[0] = BReal(v / b);
}
void ClassReal::div_char(int argc, BValue* argv)
{
	BReal v = argv[0];
	char c = argv[1];
	argv[0] = BReal(v / c);
}
void ClassReal::div_short(int argc, BValue* argv)
{
	BReal v = argv[0];
	short s = argv[1];
	argv[0] = BReal(v / s);
}
void ClassReal::div_int(int argc, BValue* argv)
{
	BReal v = argv[0];
	int i = argv[1];
	argv[0] = BReal(v / i);
}
void ClassReal::div_long(int argc, BValue* argv)
{
	BReal v = argv[0];
	long long l = argv[1];
	argv[0] = BReal(v / l);
}
void ClassReal::div_real(int argc, BValue* argv)
{
	BReal v = argv[0];
	BReal r = argv[1];
	argv[0] = BReal(v / r);
}
void ClassReal::div_float(int argc, BValue* argv)
{
	BReal v = argv[0];
	float f = argv[1];
	argv[0] = BReal(v / f);
}
void ClassReal::div_double(int argc, BValue* argv)
{
	BReal v = argv[0];
	double d = argv[1];
	argv[0] = BReal(v / d);
}

void ClassReal::div_assign_byte(int argc, BValue* argv)
{
	BReal& v = argv[0];
	BByte b = argv[1];
	v /= b;
}
void ClassReal::div_assign_char(int argc, BValue* argv)
{
	BReal& v = argv[0];
	char c = argv[1];
	v /= c;
}
void ClassReal::div_assign_short(int argc, BValue* argv)
{
	BReal& v = argv[0];
	short s = argv[1];
	v /= s;
}
void ClassReal::div_assign_int(int argc, BValue* argv)
{
	BReal& v = argv[0];
	int i = argv[1];
	v /= i;
}
void ClassReal::div_assign_long(int argc, BValue* argv)
{
	BReal& v = argv[0];
	long long l = argv[1];
	v /= l;
}
void ClassReal::div_assign_real(int argc, BValue* argv)
{
	BReal& v = argv[0];
	BReal r = argv[1];
	v /= r;
}
void ClassReal::div_assign_float(int argc, BValue* argv)
{
	BReal& v = argv[0];
	float f = argv[1];
	v /= f;
}
void ClassReal::div_assign_double(int argc, BValue* argv)
{
	BReal& v = argv[0];
	double d = argv[1];
	v /= (BReal)d;
}

void ClassReal::mod_byte(int argc, BValue* argv)
{
	BReal v = argv[0];
	BByte b = argv[1];
	argv[0] = (BReal)fmod(v, b);
}
void ClassReal::mod_char(int argc, BValue* argv)
{
	BReal v = argv[0];
	char c = argv[1];
	argv[0] = (BReal)fmod(v, c);
}
void ClassReal::mod_short(int argc, BValue* argv)
{
	BReal v = argv[0];
	short s = argv[1];
	argv[0] = (BReal)fmod(v, s);
}
void ClassReal::mod_int(int argc, BValue* argv)
{
	BReal v = argv[0];
	int i = argv[1];
	argv[0] = (BReal)fmod(v, i);
}
void ClassReal::mod_long(int argc, BValue* argv)
{
	BReal v = argv[0];
	long long l = argv[1];
	argv[0] = (BReal)fmod(v, (BReal)l);
}
void ClassReal::mod_real(int argc, BValue* argv)
{
	BReal v = argv[0];
	BReal r = argv[1];
	argv[0] = (BReal)fmod(v, r);
}
void ClassReal::mod_float(int argc, BValue* argv)
{
	BReal v = argv[0];
	float f = argv[1];
	argv[0] = (BReal)fmod(v, f);
}
void ClassReal::mod_double(int argc, BValue* argv)
{
	BReal v = argv[0];
	double d = argv[1];
	argv[0] = (BReal)fmod(v, d);
}

void ClassReal::mod_assign_byte(int argc, BValue* argv)
{
	BReal& v = argv[0];
	BByte b = argv[1];
	v = (BReal)fmod(v, b);
}
void ClassReal::mod_assign_char(int argc, BValue* argv)
{
	BReal& v = argv[0];
	char c = argv[1];
	v = (BReal)fmod(v, c);
}
void ClassReal::mod_assign_short(int argc, BValue* argv)
{
	BReal& v = argv[0];
	short s = argv[1];
	v = (BReal)fmod(v, s);
}
void ClassReal::mod_assign_int(int argc, BValue* argv)
{
	BReal& v = argv[0];
	int i = argv[1];
	v = (BReal)fmod(v, i);
}
void ClassReal::mod_assign_long(int argc, BValue* argv)
{
	BReal& v = argv[0];
	long long l = argv[1];
	v = (BReal)fmod(v, (BReal)l);
}
void ClassReal::mod_assign_real(int argc, BValue* argv)
{
	BReal& v = argv[0];
	BReal r = argv[1];
	v = (BReal)fmod(v, r);
}
void ClassReal::mod_assign_float(int argc, BValue* argv)
{
	BReal& v = argv[0];
	float f = argv[1];
	v = (BReal)fmod(v, f);
}
void ClassReal::mod_assign_double(int argc, BValue* argv)
{
	BReal& v = argv[0];
	double d = argv[1];
	v = (BReal)fmod(v, d);
}

void ClassReal::equal_bool(int argc, BValue* argv)
{
	BReal v = argv[0];
	bool b = argv[1];
	argv[0] = ((bool)v == b);
}
void ClassReal::equal_byte(int argc, BValue* argv)
{
	BReal v = argv[0];
	BByte b = argv[1];
	argv[0] = (v == b);
}
void ClassReal::equal_char(int argc, BValue* argv)
{
	BReal v = argv[0];
	char c = argv[1];
	argv[0] = (v == c);
}
void ClassReal::equal_short(int argc, BValue* argv)
{
	BReal v = argv[0];
	short s = argv[1];
	argv[0] = (v == s);
}
void ClassReal::equal_int(int argc, BValue* argv)
{
	BReal v = argv[0];
	int i = argv[1];
	argv[0] = (v == i);
}
void ClassReal::equal_long(int argc, BValue* argv)
{
	BReal v = argv[0];
	long long l = argv[1];
	argv[0] = (v == l);
}
void ClassReal::equal_real(int argc, BValue* argv)
{
	BReal v = argv[0];
	BReal r = argv[1];
	argv[0] = (v == r);
}
void ClassReal::equal_float(int argc, BValue* argv)
{
	BReal v = argv[0];
	float f = argv[1];
	argv[0] = (v == f);
}
void ClassReal::equal_double(int argc, BValue* argv)
{
	BReal v = argv[0];
	double d = argv[1];
	argv[0] = (v == d);
}

void ClassReal::unequal_bool(int argc, BValue* argv)
{
	BReal v = argv[0];
	bool b = argv[1];
	argv[0] = ((bool)v != b);
}
void ClassReal::unequal_byte(int argc, BValue* argv)
{
	BReal v = argv[0];
	BByte b = argv[1];
	argv[0] = (v != b);
}
void ClassReal::unequal_char(int argc, BValue* argv)
{
	BReal v = argv[0];
	char c = argv[1];
	argv[0] = (v != c);
}
void ClassReal::unequal_short(int argc, BValue* argv)
{
	BReal v = argv[0];
	short s = argv[1];
	argv[0] = (v != s);
}
void ClassReal::unequal_int(int argc, BValue* argv)
{
	BReal v = argv[0];
	int i = argv[1];
	argv[0] = (v != i);
}
void ClassReal::unequal_long(int argc, BValue* argv)
{
	BReal v = argv[0];
	long long l = argv[1];
	argv[0] = (v != l);
}
void ClassReal::unequal_real(int argc, BValue* argv)
{
	BReal v = argv[0];
	BReal r = argv[1];
	argv[0] = (v != r);
}
void ClassReal::unequal_float(int argc, BValue* argv)
{
	BReal v = argv[0];
	float f = argv[1];
	argv[0] = (v != f);
}
void ClassReal::unequal_double(int argc, BValue* argv)
{
	BReal v = argv[0];
	double d = argv[1];
	argv[0] = (v != d);
}

void ClassReal::greater_byte(int argc, BValue* argv)
{
	BReal v = argv[0];
	BByte b = argv[1];
	argv[0] = (v > b);
}
void ClassReal::greater_char(int argc, BValue* argv)
{
	BReal v = argv[0];
	char c = argv[1];
	argv[0] = (v > c);
}
void ClassReal::greater_short(int argc, BValue* argv)
{
	BReal v = argv[0];
	short s = argv[1];
	argv[0] = (v > s);
}
void ClassReal::greater_int(int argc, BValue* argv)
{
	BReal v = argv[0];
	int i = argv[1];
	argv[0] = (v > i);
}
void ClassReal::greater_long(int argc, BValue* argv)
{
	BReal v = argv[0];
	long long l = argv[1];
	argv[0] = (v > l);
}
void ClassReal::greater_real(int argc, BValue* argv)
{
	BReal v = argv[0];
	BReal r = argv[1];
	argv[0] = (v > r);
}
void ClassReal::greater_float(int argc, BValue* argv)
{
	BReal v = argv[0];
	float f = argv[1];
	argv[0] = (v > f);
}
void ClassReal::greater_double(int argc, BValue* argv)
{
	BReal v = argv[0];
	double d = argv[1];
	argv[0] = (v > d);
}

void ClassReal::greater_equal_byte(int argc, BValue* argv)
{
	BReal v = argv[0];
	BByte b = argv[1];
	argv[0] = (v >= b);
}
void ClassReal::greater_equal_char(int argc, BValue* argv)
{
	BReal v = argv[0];
	char c = argv[1];
	argv[0] = (v >= c);
}
void ClassReal::greater_equal_short(int argc, BValue* argv)
{
	BReal v = argv[0];
	short s = argv[1];
	argv[0] = (v >= s);
}
void ClassReal::greater_equal_int(int argc, BValue* argv)
{
	BReal v = argv[0];
	int i = argv[1];
	argv[0] = (v >= i);
}
void ClassReal::greater_equal_long(int argc, BValue* argv)
{
	BReal v = argv[0];
	long long l = argv[1];
	argv[0] = (v >= l);
}
void ClassReal::greater_equal_real(int argc, BValue* argv)
{
	BReal v = argv[0];
	BReal r = argv[1];
	argv[0] = (v >= r);
}
void ClassReal::greater_equal_float(int argc, BValue* argv)
{
	BReal v = argv[0];
	float f = argv[1];
	argv[0] = (v >= f);
}
void ClassReal::greater_equal_double(int argc, BValue* argv)
{
	BReal v = argv[0];
	double d = argv[1];
	argv[0] = (v >= d);
}

void ClassReal::less_byte(int argc, BValue* argv)
{
	BReal v = argv[0];
	BByte b = argv[1];
	argv[0] = (v < b);
}
void ClassReal::less_char(int argc, BValue* argv)
{
	BReal v = argv[0];
	char c = argv[1];
	argv[0] = (v < c);
}
void ClassReal::less_short(int argc, BValue* argv)
{
	BReal v = argv[0];
	short s = argv[1];
	argv[0] = (v < s);
}
void ClassReal::less_int(int argc, BValue* argv)
{
	BReal v = argv[0];
	int i = argv[1];
	argv[0] = (v < i);
}
void ClassReal::less_long(int argc, BValue* argv)
{
	BReal v = argv[0];
	long long l = argv[1];
	argv[0] = (v < l);
}
void ClassReal::less_real(int argc, BValue* argv)
{
	BReal v = argv[0];
	BReal r = argv[1];
	argv[0] = (v < r);
}
void ClassReal::less_float(int argc, BValue* argv)
{
	BReal v = argv[0];
	float f = argv[1];
	argv[0] = (v < f);
}
void ClassReal::less_double(int argc, BValue* argv)
{
	BReal v = argv[0];
	double d = argv[1];
	argv[0] = (v < d);
}

void ClassReal::less_equal_byte(int argc, BValue* argv)
{
	BReal v = argv[0];
	BByte b = argv[1];
	argv[0] = (v <= b);
}
void ClassReal::less_equal_char(int argc, BValue* argv)
{
	BReal v = argv[0];
	char c = argv[1];
	argv[0] = (v <= c);
}
void ClassReal::less_equal_short(int argc, BValue* argv)
{
	BReal v = argv[0];
	short s = argv[1];
	argv[0] = (v <= s);
}
void ClassReal::less_equal_int(int argc, BValue* argv)
{
	BReal v = argv[0];
	int i = argv[1];
	argv[0] = (v <= i);
}
void ClassReal::less_equal_long(int argc, BValue* argv)
{
	BReal v = argv[0];
	long long l = argv[1];
	argv[0] = (v <= l);
}
void ClassReal::less_equal_real(int argc, BValue* argv)
{
	BReal v = argv[0];
	BReal r = argv[1];
	argv[0] = (v <= r);
}
void ClassReal::less_equal_float(int argc, BValue* argv)
{
	BReal v = argv[0];
	float f = argv[1];
	argv[0] = (v <= f);
}
void ClassReal::less_equal_double(int argc, BValue* argv)
{
	BReal v = argv[0];
	double d = argv[1];
	argv[0] = (v <= d);
}
